package cn.iocoder.devlop.module.annual.report.forguaranteeinfo.controller.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import static cn.iocoder.devlop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * 企业年报对外提供保证担保信息 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class ForguaranteeinfoBaseVO {

    @Schema(description = "年报id", requiredMode = Schema.RequiredMode.REQUIRED, example = "22055")
    @NotNull(message = "年报id不能为空")
    private String ancheid;

    @Schema(description = "企业主体分类 1,企业2,农合；3,个体 4 外商  5 常驻代表机构")
    private String entclassify;

    @Schema(description = "债权人")
    private String more;

    @Schema(description = "债务人")
    private String mortgagor;

    @Schema(description = "主债权种类(1、合同,2、其他)")
    private String priclaseckind;

    @Schema(description = "主债权数额")
    private BigDecimal priclasecam;

    @Schema(description = "履行债务的期限自")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime pefperform;

    @Schema(description = "履行债务的期限至")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime pefperto;

    @Schema(description = "保证的期间(1、期限，2、未约定)")
    private String guaranperiod;

    @Schema(description = "对外担保是否公示(1、是，2、否)")
    private String moredis;

    @Schema(description = "保证的方式(1、一般保证，2、连带保证，3、未约定)", example = "2")
    private String gatype;

    @Schema(description = "年报年份")
    private String ancheyear;

    @Schema(description = "企业注册号")
    private String regno;

}
